import 'package:flutter/material.dart';
import 'package:flutter_share/pages/home/index.dart';
import 'package:flutter_share/pages/mine/index.dart';
import 'package:flutter_share/utils/Emitter.dart';
import 'package:flutter_share/utils/token_manager.dart';

class TabsPage extends StatefulWidget {
  const TabsPage({super.key});

  @override
  State<TabsPage> createState() => _TabsPageState();
}

class _TabsPageState extends State<TabsPage> {
  int _currentIndex = 0; // 当前选中

  @override
  void initState() {
    super.initState();
    // 初始化token
    tokenManager.init();
    // 注册事件监听
    regiterEventBus();
  }

  /// 注册事件监听
  regiterEventBus() {
    // 监听 LogoutEvent 事件
    eventBus.on<LogoutEvent>().listen((event) {
      // 跳转登录页
      Navigator.pushNamed(context, '/login');
    });
  }

  /// 父组件，定义 更新 tabs 索引 的方法，用于在子组件中调用
  updateIndexFn(int index) {
    setState(() {
      _currentIndex = index;
    });
  }

  @override
  Widget build(BuildContext context) {
    // 脚手架
    return Scaffold(
      // 顶部导航栏
      // appBar: AppBar(
      //   title: const Text('享+社区'),
      //   centerTitle: true,
      // ),
      // 主体
      body: IndexedStack(
        index: _currentIndex,
        children: [
          const HomeIndex(),
          MineIndex(updateIndexFn: updateIndexFn),
        ],
      ),
      // 底部导航栏
      bottomNavigationBar: BottomNavigationBar(
        // 选中颜色
        selectedItemColor: const Color(0xff5592af),
        // 未选中颜色
        unselectedItemColor: const Color(0xff434242),
        // 选中图标大小
        selectedFontSize: 12,
        // 未选中图标大小
        unselectedFontSize: 12,
        // 类型
        type: BottomNavigationBarType.fixed,
        // 当前选中的索引
        currentIndex: _currentIndex,
        // 点击事件
        onTap: (index) {
          setState(() {
            _currentIndex = index;
          });
        },
        items: [
          BottomNavigationBarItem(
              icon: Image.asset(
                'assets/tabs/home_default.png',
                width: 24,
                height: 24,
              ),
              activeIcon: Image.asset(
                'assets/tabs/home_active.png',
                width: 24,
                height: 24,
              ),
              label: '首页'),
          BottomNavigationBarItem(
              icon: Image.asset(
                'assets/tabs/my_default.png',
                width: 24,
                height: 24,
              ),
              activeIcon: Image.asset(
                'assets/tabs/my_active.png',
                width: 24,
                height: 24,
              ),
              label: '我的'),
        ],
      ),
    );
  }
}
